package com.example.lottery.common.utils;

import cn.hutool.core.util.CharsetUtil;
import cn.hutool.crypto.SecureUtil;
import cn.hutool.crypto.digest.DigestUtil;
import cn.hutool.crypto.symmetric.AES;

import java.nio.charset.StandardCharsets;
import java.util.Map;

//解密工具
public class DecryptUtils {
    //AES随机生成密钥 也可以自定义
    public static final byte[] KEY = "123456789abcdefg".getBytes(StandardCharsets.UTF_8);
    /**
     * 摘要加密的验证
     * @param content 待校验
     * @param secret  从数据库获取用于比较
     * @return 返回待校验是否正确
     */
    public static boolean verifySHA256(String content,String salt,String secret){
        //对明文加密
        String s = DigestUtil.sha256Hex(content);
        //从数据库中获取盐值salt
        //拼接 s+salt 并且与 secret对比
        return (s+salt).equals(secret);
    }

    /**
     * 对称解密 aes
     * @param encryptHex 密文
     * @return 返回明文
     */
    public static String decryptAES(String encryptHex){
        //解密
        // 构建
        AES aes = SecureUtil.aes(KEY);
        return aes.decryptStr(encryptHex, CharsetUtil.CHARSET_UTF_8);
    }

}
